use axum::{
    routing::{get, patch, post},
    Router,
};

#[tokio::main]
async fn main() {
    // build our application with a single route

    let app = Router::new()
        .route("/users/register", post(register))
        .route("/users/login", post(login))
        .route("/todos", get(get_todos).post(post_todos))
        .route(
            "/todos/:id",
            get(get_todo).put(update_todo).delete(delete_todo),
        )
        .route("/todos/:id/status", patch(update_status_todo));

    // which calls one of these handlers

    // run our app with hyper, listening globally on port 3000
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}
async fn register() {}
async fn login() {}
async fn get_todos() {}
async fn post_todos() {}
async fn get_todo() {}
async fn update_todo() {}
async fn delete_todo() {}
async fn update_status_todo() {}
